#include "mybutton.h"
#include <QDebug>
#include <QKeyEvent>
#include <QCoreApplication>
#include <QApplication>
mybutton::mybutton(QWidget *widget)
{
    //关联clicked信号
    connect(this,SIGNAL(clicked()),this,SLOT(fun()));
}
//mybutton的槽函数
void mybutton::fun()
{
    //获取信号的发送者
    QObject *p=sender();
    //把p转成具体的子类
    mybutton *bt=qobject_cast<mybutton *>(p);
    //获取按键的字面值
    QString str=bt->text(); //a -->A(65) QT定义字面按键的使用键值跟大写字符的ASCII码值一样
    QChar ch=str.at(0);
    int n=(int)(ch.toLatin1()); //计算得到ASCII码值
    //产生按键事件--》自定义
    QKeyEvent *keyevent=new QKeyEvent(QEvent::KeyPress,n-32,Qt::NoModifier,str);

    //把按键事件发送给事件接收者
    //获取鼠标焦点停留的组件地址-->鼠标光标聚集在谁上面，该函数就返回它的地址
    QWidget *w=QApplication::focusWidget();
    return QCoreApplication::postEvent(w,keyevent);
}
